package com.ruoyi.web.enums;

import com.ruoyi.web.constant.RedisMessageType;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * app用户字典
 */
public enum UserEnums {
    ;
    /**
     * 类型（0服务费、1利润结算）
     */
    @Getter
    @AllArgsConstructor
    public enum Chain {
        /**
         * 0 服务费
         */
        ETH("以太坊", "eth"),
        /**
         * 0 服务费
         */
        BSC("币安", "bsc"),
        /**
         * 1 利润结算
         */
        TRX("波场", "trx");

        private final String name;
        private final String value;

        /**
         * 根据name查找对应value
         *
         * @param name 枚举名称
         * @return java.lang.String
         * @author gong_da_kai
         * @since 2021/11/14
         */
        public static String findValue(String name) {
            for (Chain item : values()) {
                if (item.getName().equals(name)) {
                    return item.getValue();
                }
            }

            return null;
        }

        /**
         * 根据value查找对应的name
         *
         * @param value 枚举值
         * @return java.lang.String
         * @author gong_da_kai
         * @since 2021/11/14
         */
        public static String findName(String value) {
            for (Chain item : values()) {
                if (item.getValue().equals(value)) {
                    return item.getName();
                }
            }

            return null;
        }
    }

    /**
     * 邮箱类型
     */
    @Getter
    @AllArgsConstructor
    public enum EmailType {
        /**
         * 用户注册
         */
        Customer_Registration("用户注册", "0", RedisMessageType.Customer_Registration),
        /**
         * 用户修改邮箱
         */
        Customer_Modify_Email("用户修改邮箱", "1", RedisMessageType.Customer_Modify_Email),
        /**
         * 用户修改密码
         */
        Customer_Modify_MONEY_PASSWORD("用户修改密码", "2", RedisMessageType.Customer_Modify_MONEY_PASSWORD),
        /**
         * 用户邮箱登录
         */
        Email_Login("用户邮箱登录", "3", RedisMessageType.Email_Login),
        /**
         * 提现申请
         */
        Withdrawal_Request("提现申请", "4", RedisMessageType.Withdrawal_Request);

        private final String name;
        private final String value;
        private final String type;

        /**
         * 根据value查找对应的name
         *
         * @param value 枚举值
         * @return java.lang.String
         * @author gong_da_kai
         * @date 2021/11/14
         * @since 1.0.0
         */
        public static String findType(String value) {
            for (EmailType item : values()) {
                if (item.getValue().equals(value)) {
                    return item.getType();
                }
            }
            return null;
        }
    }

}
